﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations.Schema;
using PmSadis.Models.Abstract;

namespace PmSadis.Models
{
    /// <summary>
    /// Объект контракта
    /// </summary>
    [Table("D_OBJECT_CONTRACT")]
    public class ObjectInContract : IRedactModel
    {
        /// <summary>
        /// Идентификатор
        /// </summary>
        [Column("OBJECT_CONTRACT_ID")]
        public int ObjectInContractId { get; set; }

        /// <summary>
        /// Месяц начала обслуживания объекта в контракте
        /// </summary>
        [Column("MONTH_BEGIN")]
        public int? MonthBegin { get; set; }

        /// <summary>
        /// Месяц окончания обслуживания объекта в контракте
        /// </summary>
        [Column("MONTH_END")]
        public int? MonthEnd { get; set; }

        /// <summary>
        /// Дата создания
        /// </summary>
        [Column("DATE_CREATE")]
        public DateTime DateCreate { get; set; }

        /// <summary>
        /// Дата обновления
        /// </summary>
        [Column("DATE_UPDATE")]
        public DateTime DateUpdate { get; set; }

        /// <summary>
        /// Объект содержания
        /// </summary>
        [Column("OBJECT_ID")]
        public int ObjectId { get; set; }
        public virtual ContractObject Object { get; set; }

        /// <summary>
        /// Субконтракт
        /// </summary>
        [Column("SUB_CONTRACT_ID")]
        public int? SubContractId { get; set; }
        public virtual SubContract SubContract { get; set; }

        [NotMapped]
        public string Name
        {
            get
            {
                return this.Object.Name;
            }
        }

        [NotMapped]
        public string Code
        {
            get
            {
                return this.Object.Code;
            }
        }
    }
}
